#!/usr/bin/env python3
#
#   Razer device QT configuration tool
#
#   Copyright (C) 2007-2016 Michael Buesch <m@bues.ch>
#
#   This program is free software; you can redistribute it and/or
#   modify it under the terms of the GNU General Public License
#   as published by the Free Software Foundation; either version 2
#   of the License, or (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

import sys
import traceback
from PySide.QtCore import *
from PySide.QtGui import *

import pyrazer
from pyrazer import ui

def main():
	try:
		ui.razer = pyrazer.Razer(enableNotifications=True)
	except pyrazer.RazerEx as e:
		print(e)
		return 1

	app = QApplication(sys.argv)
	try:
		# check if systray is available at freedesktop
		if not QSystemTrayIcon.isSystemTrayAvailable():
			print("No system tray available")
			return 1
		applet = ui.RazerApplet()
		applet.show()
		return app.exec_()
	except pyrazer.RazerEx as e:
		QMessageBox.critical(None,
			"qrazercfg-applet - Fatal exception",
			"qrazercfg-applet - A fatal exception occurred:\n\n"
			"%s\n\n"
			"%s" % (str(e), traceback.format_exc()))
		raise e

if __name__ == "__main__":
	sys.exit(main())
